"""
文件：
    概述：
        无论是 Windows Linux ，Mac系统，都是采用 文件 来管理数据的，他们都是 文件管理系统
        之所以采用文件来管理数据，是因为：内存中的数据是临时的，电脑关机后 ，数据就丢失了
        文件： 可以实现 数据的 永久保存
    文件的类型
        文本文档，图片类型，视频，音频....
    文件操作的步骤
        1. 打开文件
        2. 读写操作
        3. 关闭文件

    打开文件，涉及到的API(Application Programming Interface 应用程序编程接口) ，就是别人写好的 函数
    打开文件的语法：
        文件对象名 = open('文件路径','打开模式','字符集')  字符集为可选参数
        一般读取中文的时候需要设置，读取英文不需要设置
        字符集
            英文在所有的编码中都是占一个字节
            中文 在 ASCII码中占3个字节  在 GBK中占2个字节
        打开模式：
            r: 只读   文件不存在不会报错
            w: 只写   文件不存在会创建
            r+ 读写   文件不存在会报错
            w+ 写读   文件不存在会创建
            a  追加   文件不存在会创建
            a+ 追加读  文件不存在会创建
    读取文件信息的函数
        read(num)   一次性读取num个字节的数据，不写num就一次性读取所有的数据
        readline()  一次读取一行
        readlines()  一次性读取所有的行，并且会把每行数据封装到一个列表中
    关闭文件：
        文件对象名.close()
    细节：
        1. Python中 路径的写法， 要么写 \\ 要么用 /,要么r'D:\a.txt'
         即 r'\' 会取消 \ 的转义含义，当做一个普通字符来使用
        2. 相对路径是相对于当前 包 的路径来写的




"""

# 1. 打开文件
# f = open(r'D:\a.txt','r')
f = open('./data/a.txt', 'r')
# 2. 读写操作
# print(f.read(10)) # 一次性读取10个字节
# print(f.read(1)) # 一次性读取一个字节
# print(f.read()) # 一次性读取文件中所有的数据

# print(f.readline()) # 'abc\n'
# print(f.readline())
# print(f.readline())
# print(f.readline())
# print(f.readline())  # 空
# print(f.readline())

print(f.readlines()) # ['abc\n', 'def\n', 'ghi\n', 'klm']
#3. 关闭文件
f.close()